package com.zudada.servermain.POJO.DTO;


import lombok.Data;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

@Data
public class PortUserDTO {

    // 登录用户名（非空，唯一，对应数据库 uk_port_user_username 约束）
    @ApiModelProperty("用户名")
    @NotBlank(message = "用户名不能为空")
    @Size(max = 50, message = "用户名长度不能超过50字符")
    private String username;

    // 登录密码（非空，加密存储）
    @ApiModelProperty("密码")
    @NotBlank(message = "密码不能为空")
    @Size(max = 255, message = "密码长度不能超过255字符")
    private String password;

    // 关联港口 ID（非空，外键关联 port_basic 表）
    @ApiModelProperty("港口ID")
    @NotBlank(message = "港口ID不能为空")
    @Size(max = 50, message = "港口ID长度不能超过50字符")
    private String portId;

    // 真实姓名（非空）
    @ApiModelProperty("真实姓名")
    @NotBlank(message = "真实姓名不能为空")
    @Size(max = 100, message = "真实姓名长度不能超过100字符")
    private String realName;

    // 用户类型（非空，如货主、货代等）
    @ApiModelProperty("用户类型")
    @NotBlank(message = "用户类型不能为空")
    @Size(max = 50, message = "用户类型长度不能超过50字符")
    private String userType;

    // 联系方式（非空）
    @ApiModelProperty("联系方式")
    @NotBlank(message = "联系方式不能为空")
    @Size(max = 100, message = "联系方式长度不能超过100字符")
    private String contactInfo;

    // 业务范围（非空）
    @ApiModelProperty("业务范围")
    @NotBlank(message = "业务范围不能为空")
    @Size(max = 200, message = "业务范围长度不能超过200字符")
    private String businessScope;

    // 历史交易记录（可为空，json 格式字符串）
    @ApiModelProperty("历史交易记录(JSON)")
    @Size(max = 1000, message = "历史交易记录长度不能超过1000字符")
    private String transactionHistory;

    // 用户偏好（非空，json 格式字符串）
    @ApiModelProperty("用户偏好(JSON)")
    @NotBlank(message = "用户偏好不能为空")
    @Size(max = 500, message = "用户偏好长度不能超过500字符")
    private String preference;

    @ApiModelProperty("角色类型")
    private Integer roleType;

    @ApiModelProperty("角色")
    private String role;




}
